/**
 * Datatables有几个自定义事件，你可以用代码处理这些，
 * 比如当搜索事件触发的时候你要处理什么事情。
 * 这个例子演示使用当触发了搜索、排序、分页事件后打印日志
 */
// 当文档准备就绪时执行的函数
$(function () {
    /**
     * 当指定事件被触发时执行的函数
     * @param {string} type 事件类型
     */
    const eventFired = function (type) {
        // 获取当前时间的毫秒时间戳
        const timestamp = new Date().getTime();

        // 创建一个新的 Date 对象，使用当前时间戳
        const dateObject = new Date(timestamp);

        // 使用 Date 对象的方法获取当前时间的年、月、日、时、分、秒
        const year = dateObject.getFullYear();
        const month = dateObject.getMonth() + 1; // 由于月份从0开始，需要加1变为人类可读的格式
        const day = dateObject.getDate();
        const hours = dateObject.getHours();
        const minutes = dateObject.getMinutes();
        const seconds = dateObject.getSeconds();

        // 找到 id 为 'demo_info' 的元素，并更新其内容
        const n = $('#demo_info')[0];
        n.innerHTML += '<div>' + type + ' 事件- ' + `当前时间：${year}年${month}月${day}日 ${hours}:${minutes}:${seconds}` + '</div>';
        // 将滚动条滚动到最底部，以便查看最新事件
        n.scrollTop = n.scrollHeight;
    };

    // 为 id 为 'example' 的元素绑定事件监听器，并初始化 dataTable
    $('#example')
        .on('order.dt', function () { // 当排序事件发生时
            eventFired('排序');
        })
        .on('search.dt', function () { // 当搜索事件发生时
            eventFired('搜索');
        })
        .on('page.dt', function () { // 当翻页事件发生时
            eventFired('翻页');
        }).dataTable();
});

